#include "portero.h"

Portero::Portero(int argc, char *argv[])
{
    thread_flag=false;
    veoPelota=false;
    pthread_mutex_init (&this->_mutex, (pthread_mutexattr_t*) NULL);
    cliente.checkConnection(argc);
    cliente.socket(argv);
    recibir.start(this);
    cliente.enviar("(init Grupo_3 (goalie))");
    thread_flag=false;
    sleep(1);
    thread_flag=false;
    setnumero(datos.getNumero());
    colocar(-45,0);
    cliente.enviar(msg.str());
    sleep(1);
    cout<<"Portero con el dorsal "<<getnumero()<<" juega en el lado "<<datos.getSide()<<endl;
    if(datos.getSide() == "r")
    {
        pos_inicial.setX(pos_inicial.getX()*(-1));
        pos_inicial.setY(pos_inicial.getY()*(-1));
        cliente.enviar("(turn 180)");
        thread_flag = false;
    }
}

/**
 * @brief Portero::coger Función para coger la pelota.
 */
void Portero::coger()
{
    float velocidad = datos.getSeeInst("ball").getDist()*10;;
    msg.str("");
    if(buscarPelota())
    {
        if(distanciaJugadoresContrarios(30))
        {
            mover(velocidad);
            usleep(15000);
        }
        else
        {
            if(datos.getSeeInst("ball").getDist() < 10)
            {
                mover(velocidad);
                usleep(15000);
            }
        }
        if(datos.getSeeInst("ball").getDist() < 0.7)
        {
            msg<<"(catch "<<datos.getSeeInst("ball").getDir()<<")";
            usleep(15000);
        }
    }
}
